Program Obfuscation and One-Time Programs

نویسنده

  • Shafi Goldwasser
چکیده

Program obfuscation is the process of taking a program as an input and modifying it so that the resulting program has the same I/O behavior as the input program but otherwise looks`completely garbled' to the entity that runs it, even if this entity is adversarial and has full access to the program. Impossibility results, origination with the work of Barak etal in 2001, have been proved that assert that several strong (albeit natural) formulations of obfuscation are impossible to achieve for general programs. That is, there is no generic mechanism that can successfully obfuscate large classes of programs. Yet, even more recent theoretical results have pointed out a way in which, in spite of these generic impossibility results, the basic concept of program obfuscation is obtainable in certain settings. One setting on which we will elaborate is of one-time programs: programs that can be executed only a restricted and pre-specified number of times. Naturally, these programs cannot be achieved using software alone. We show how to build them using`simple' andùniversal' secure memory components. One-time programs serve many of the same purposes of program obfuscation, the obvious one being software protection. However, the applications of one-time programs go well beyond those of obfuscation, since one-time programs can only be executed once (or more generally, a limited number of times) while obfuscated programs have no such bounds. For example, one-time programs lead naturally to temporary delegation of cryptographic ability, electronic token schemes such as subway tokens, andtòòne-time proofs'': proofs that can only be verified once and then become useless and unconvincing. We show how to use a classical witness and simple secure memory to efficiently construct such``one-time proofs'' for any NP statement. Joint work with Yael Kalai and Guy Rothblum.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On the Possibility of Provably Secure Obfuscating Programs

By obfuscation we mean any efficient semantic-preserving transformation of computer programs aimed at bringing a program into such a form, which impedes the understanding of its algorithm and data structures or prevents the extracting of some valuable information from the plaintext of a program. The main difficulty in designing an effective program obfuscator is to guarantee security, i.e. to p...

متن کامل

Semantics-based code obfuscation by abstract interpretation

In recent years code obfuscation has attracted research interest as a promising technique for protecting secret properties of programs. The basic idea of code obfuscation is to transform programs in order to hide their sensitive information while preserving their functionality. One of the major drawbacks of code obfuscation is the lack of a rigorous theoretical framework that makes it difficult...

متن کامل

Self-Protecting Mobile Agents Obfuscation Techniques Evaluation Report

This document presents an analysis of various program obfuscation techniques performed as part of the Self-Protecting Mobile Agents (SPMA) project. We have developed the Java Binary Enhancement Tool (JBET) to explore the real-world tradeoffs in translating and obfuscating Java bytecodes. We consider methods for obfuscating long-term data values, temporary data values, control flow, memory manag...

متن کامل

Implementation of an Obfuscation Tool for C/C++ Source Code Protection on the XScale Architecture

Obfuscation is one of the most effective methods to protect software against malicious reverse engineering intentionally making the code more complex and confusing. In this paper, we implement and evaluate an obfuscation tool, or obfuscator for protecting the intellectual property of C/C++ source code. That is, this paper presents an implementation of a code obfuscator, a tool which transforms ...

متن کامل

Studies in Program Obfuscation

Program obfuscation is the software analog to the problem of tamper-proofing hardware. The goal of program obfuscation is to construct a compiler, called an “obfuscator,” that garbles the code of a computer program while maintaining its functionality. Commercial products exist to perform this procedure, but they do not provide a rigorous security guarantee. Over the past decade, program obfusca...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008